'''
类方法：
    1.定义：在类中定义，使用@classmethod进行装饰的方法
    2.类方法中参数不是一个对象，而是类
    3.类方法中只能使用类属性
    4.类方法中不能使用普通方法
作用：
    因为只能访问类属性和类方法，所以可以在对象创建之前，如果需要完成一些动作(功能)
'''
class Dog:
    def __init__(self, nickname):
        self.nickname = nickname

    def run(self):
        print('{}在院子里跑来跑去！'.format(self.nickname))

    def eat(self):
        print('{}在吃饭！'.format(self.nickname))
        self.run()

    @classmethod
    def text(cls):
        print(cls)
        # print(cls.nickname)

d = Dog('旺财')
d.run()
print('----------------------')

class Person:
    age = 18

    def show(self):
        print('--->',Person.age)

    @classmethod
    def update_age(cls):
        cls.__age = 20
        print('--->类方法')

    @classmethod
    def show_age(cls):
        print('修改后的年龄是:',cls.__age)

# p = Person()
# p.show()

# Person.age = Person.age + 1
# print(Person.age)

Person.update_age()
Person.show_age()
